package zero.tech.games.phz.data;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import zero.tech.games.logic.common.GameBase;
import zero.tech.games.phz.data.entity.Broker;
import zero.tech.games.phz.data.entity.Card;
import zero.tech.games.phz.data.entity.DelayOp;
import zero.tech.games.phz.data.entity.OpData;
import zero.tech.games.phz.data.entity.PlayerData;
import zero.tech.games.phz.data.entity.op.CphOpData;
import zero.tech.games.phz.data.entity.op.HupaiData;
import zero.tech.games.phz.data.playback.OperateData;
import zero.tech.games.phz.data.req.ReqOp;

public class PhzGameBase extends GameBase{
	private final List<OperateData> operateDatas=new ArrayList<>();//操作数据(战绩)
	private final Map<Integer,List<CphOpData>> oplistmap=new HashMap<>();//翻牌吃碰胡操作集合
	private final Map<Integer,ReqOp> choosemap=new HashMap<>();//吃碰胡选择
	private final Map<Integer,List<Card>> handsmap=new HashMap<>();//发牌数据(战绩)
	private final Map<Integer,PlayerData> players=new HashMap<>();//玩家数据
	private int dipai_count;//初始底牌数量(战绩)
	private final List<Card> dipai=new ArrayList<>();//底牌数据
	private Card banker_last_card;//庄家最后一张牌
	private int dispatch_uid;//出牌玩家uid
	private int banker_uid;//庄家uid
	private OpData fanpai;//翻牌
	private DelayOp delayOp;//延迟操作
	private Integer hupai_uid;//胡牌玩家uid
	private OpData hupai;//胡牌
	private boolean qishouxianjiatipaiandyadi;
	private int step;//1打牌 2吃碰胡过操作
	private Broker broker;
	private HupaiData hupaiData;//计算出的胡牌
	public PhzGameBase(String room_id) {
		super(room_id);
	}
	public List<Card> getDipai() {
		return dipai;
	}
	public Map<Integer, PlayerData> getPlayers() {
		return players;
	}
	public Map<Integer, List<Card>> getHandsmap() {
		return handsmap;
	}
	public int getBanker_uid() {
		return banker_uid;
	}
	public void setBanker_uid(int banker_uid) {
		this.banker_uid = banker_uid;
	}
	public Card getBanker_last_card() {
		return banker_last_card;
	}
	public void setBanker_last_card(Card banker_last_card) {
		this.banker_last_card = banker_last_card;
	}
	public OpData getFanpai() {
		return fanpai;
	}
	public void setFanpai(OpData fanpai) {
		this.fanpai = fanpai;
	}
	public int getDispatch_uid() {
		return dispatch_uid;
	}
	public void setDispatch_uid(int dispatch_uid) {
		this.dispatch_uid = dispatch_uid;
	}
	public DelayOp getDelayOp() {
		return delayOp;
	}
	public void setDelayOp(DelayOp delayOp) {
		this.delayOp = delayOp;
	}
	public Integer getHupai_uid() {
		return hupai_uid;
	}
	public void setHupai_uid(Integer hupai_uid) {
		this.hupai_uid = hupai_uid;
	}
	public boolean isQishouxianjiatipaiandyadi() {
		return qishouxianjiatipaiandyadi;
	}
	public void setQishouxianjiatipaiandyadi(boolean qishouxianjiatipaiandyadi) {
		this.qishouxianjiatipaiandyadi = qishouxianjiatipaiandyadi;
	}
	public Map<Integer, List<CphOpData>> getOplistmap() {
		return oplistmap;
	}
	public Map<Integer, ReqOp> getChoosemap() {
		return choosemap;
	}
	public int getStep() {
		return step;
	}
	public void setStep(int step) {
		this.step = step;
	}
	public Broker getBroker() {
		return broker;
	}
	public void setBroker(Broker broker) {
		this.broker = broker;
	}
	public OpData getHupai() {
		return hupai;
	}
	public void setHupai(OpData hupai) {
		this.hupai = hupai;
	}
	public List<OperateData> getOperateDatas() {
		return operateDatas;
	}
	public int getDipai_count() {
		return dipai_count;
	}
	public void setDipai_count(int dipai_count) {
		this.dipai_count = dipai_count;
	}
	public HupaiData getHupaiData() {
		return hupaiData;
	}
	public void setHupaiData(HupaiData hupaiData) {
		this.hupaiData = hupaiData;
	}
}
